package event

import (
	"time"

	"frame/internal/app/user/domain"
)

// UserUpdated 代表一个用户信息更新的事件
type UserUpdated struct {
	UserID    string        `json:"user_id"`
	OldEmail  string        `json:"old_email"`
	NewEmail  *domain.Email `json:"new_email"`
	UpdatedAt time.Time     `json:"updated_at"`
}

// NewUserUpdated 创建一个新的用户更新事件
func NewUserUpdated(user *domain.User, oldEmail string) *UserUpdated {
	return &UserUpdated{
		UserID:    user.ID,
		OldEmail:  oldEmail,
		NewEmail:  user.Email,
		UpdatedAt: time.Now(),
	}
}
